Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel

Réponse
 
Outils de la discussion
Vieux 02/07/2008, 15h27   #1 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 348
Par défaut Récupérer le contenu de colonnes en une seule ligne

Bonjour,

J'ai un petit Problème à résoudre :

je préfère donner un exemple (Voir Image)


Ce que je cherche à obtenir au final est :

une chaîne de caractère :

Toto = MonChiffre et Titi <> MonNumero ou Tata = MonCA


Sachant que le nombre de colonne est appelé à augmenter càd que dans mon exemple il y a 5 colonnes, ce nombre peut aller jusqu'à 20 voire plus.

D'avance Merci pour votre réponse
Images attachées
Type de fichier : gif Exemple.gif (3,7 Ko, 12 affichages)

Dernière modification par casavba ; 02/07/2008 à 16h25
casavba est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 15h31   #2 (permalink)
Nouveau membre du Club
 
Date d'inscription: juin 2008
Localisation: Gotham
Messages: 62
Par défaut

Pourrais tu détailler tes variables j'ai une solution mais il me faut des précisions
jolzeviking est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 15h43   #3 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 348
Par défaut

Il n' ya pas de variable, c'est juste des valeurs de cellules.
casavba est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 16h26   #4 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 666
Par défaut

Bonjour,
C'est vraiment nébuleux, un peu plus d'explications seraient les bienvenues
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 16h32   #5 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 348
Par défaut

En fait, je voudrais récupérer le contenu des colonnes (voir image ci dessus).
en une seule ligne plutôt dans une variable String :

Code :
MaVariableString = "Toto = MonChiffre et Titi <> MonNumero ou Tata = MonCA"
j'espère que je me suis bien exprimé

Merci
casavba est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 16h52   #6 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 666
Par défaut

D'après ce que j'ai compris, ça devrait ressembler à ceci
Code :
Sub test()
Dim i As Integer, j As Integer, derL As Integer, derC As Integer, Result As String
 
derL = Cells(Rows.Count, 1).End(xlUp).Row
derC = Cells(1, Columns.Count).End(xlToLeft).Column
 
For j = 1 To derC
    For i = 1 To derL
        If Cells(i, j).Text <> "" Then
            Result = Result & " " & Cells(i, j)
        End If
    Next
Next
 
MsgBox Trim(Result)
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 02/07/2008, 20h08   #7 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 348
Par défaut

Merci Fring pour ta réponse pertinente. Mais (ce "Mais" est à cause de moi, parce que je voulais simplifier le plus possible mon problème) la réponse n'est pas adapté totalement à mon problème.


En fait, dans certains cas (voir image) j'ai plusieurs valeurs dans une colonne et ce cas ne peut être possible que si et seulement si j'ai un signe "=" .

dans ce cas je voudrais récupérer la ligne comme suit :

Code :
MaVariableString = Toto <> 10 et Toto1 = (20;30;40;50;60) ou Toto2 <> 100 et Toto3 <> 1000
Comme vous le remarquez, s'il y a un signe " = ", il y a forcèment plusieurs valeurs auquel cas il faut séparer ces valeurs par des ";" et récupérer le tout entre paranthèse


Merci pour votre aide
Images attachées
Type de fichier : gif Exemple.gif (3,8 Ko, 4 affichages)
casavba est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2008, 11h48   #8 (permalink)
Rédacteur/Modérateur
 
Avatar de fring
 
Date d'inscription: février 2008
Localisation: Bxl
Âge: 45
Messages: 2 666
Par défaut

2ème essais

Code :
Sub test()
Dim i As Integer, j As Integer, k As Integer, Result As String
Dim derL As Integer, derC As Integer
 
derL = Cells(Rows.Count, 1).End(xlUp).Row
derC = Cells(1, Columns.Count).End(xlToLeft).Column
 
For j = 1 To derC
derL = Cells(Rows.Count, j).End(xlUp).Row
    For i = 1 To derL
        If Cells(i, j).Text <> "" Then
            If Cells(i, j) = "=" Then
                Result = Result & " = ("
                For k = Cells(i, j).Row + 1 To derL
                    If k = Cells(i, j).Row + 1 Then
                        Result = Result & Cells(k, j)
                    Else
                        Result = Result & ";" & Cells(k, j)
                    End If
                Next
                Result = Result & ")"
                Exit For
            Else
            Result = Result & " " & Cells(i, j)
            End If
        End If
    Next
Next
 
MsgBox Trim(Result)
 
End Sub
__________________
LES FAQ OFFICE - LES COURS OFFICE - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

Prenez quelques secondes pour lire ceci : Aide sur l'utilisation des boutons du forum

Hormis pour me demander mon numéro de compte afin d'y effectuer un versement, évitez de m'envoyer vos questions par MP, merci d'avance
En posant une question on risque d'avoir l'air idiot cinq minutes. En n'en posant pas, on risque de le rester toute sa vie (proverbe chinois)
fring est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/07/2008, 13h21   #9 (permalink)
Membre éclairé
 
Avatar de casavba
 
Date d'inscription: juillet 2007
Localisation: Quelque part en Hexagone
Messages: 348
Par défaut

Merci Bcp Fring c'est ce que je cherchais.

Encore mille merci
casavba est déconnecté   Envoyer un message privé Réponse avec citation
NEWS MS-OFFICEFAQs OFFICETUTORIELS OFFICELIVRES OFFICESOURCES VBA

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Microsoft Office > Excel > VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide