Bonjour à tous !
J'ai un petit souci de code VBA 😕
Après plusieurs recherches, j'ai trouvé plusieurs choses :
- Trouver la première cellule vide dans une colonne
- Trouver la première ligne vide (j'ai pas réussi 🙁 )
Sauf que c'est pas ce que je cherche exactement.
Je voudrais que mon code détecte la première ligne vide d'un autre fichier excel mais uniquement sur les colonnes A, B et C. 😱
Une fois trouvée, je voudrais y copier une plage (de 1, 2 ou 3 colonnes sur plusieurs lignes) depuis mon fichier excel en cours.
Après plusieurs essais, j'ai eu droit à plusieurs "problèmes" :
- Le code ne tenait compte que de la première colonne
- Le code copiait des #NA sur les cellules vides à l'origine
- Il ne se passe rien 😡
	
	
	
	
	
		
Le seul qui fonctionne mais uniquement sur la colonne A c'est celui-là :
	
	
	
	
	
		
Quelqu'un a-t-il une idée ? Ci-dessous un extrait du code :
	
	
	
	
	
		
Merci d'avance pour vos réponses
	
		
			
		
		
	
				
			J'ai un petit souci de code VBA 😕
Après plusieurs recherches, j'ai trouvé plusieurs choses :
- Trouver la première cellule vide dans une colonne
- Trouver la première ligne vide (j'ai pas réussi 🙁 )
Sauf que c'est pas ce que je cherche exactement.
Je voudrais que mon code détecte la première ligne vide d'un autre fichier excel mais uniquement sur les colonnes A, B et C. 😱
Une fois trouvée, je voudrais y copier une plage (de 1, 2 ou 3 colonnes sur plusieurs lignes) depuis mon fichier excel en cours.
Après plusieurs essais, j'ai eu droit à plusieurs "problèmes" :
- Le code ne tenait compte que de la première colonne
- Le code copiait des #NA sur les cellules vides à l'origine
- Il ne se passe rien 😡
		Code:
	
	
	Cells(Range("A1000:C1000").End(xlUp).Row, 1) = ThisWorkbook.Sheets("FicheB203").Range("T14:U18").Value
	Le seul qui fonctionne mais uniquement sur la colonne A c'est celui-là :
		Code:
	
	
	Range("A1000").End(xlUp).Offset(1, 0) = ThisWorkbook.Sheets("FicheB203").Range("T14").Value
	Quelqu'un a-t-il une idée ? Ci-dessous un extrait du code :
		Code:
	
	
	Private Sub CdeButOK_Click()
Dim ccb1 As Integer 'déclare la variable ccb1 (Colonne ComboBox1)
Dim P As Integer 'déclare la variable P (pourrait être déclarée comme Byte ?)
Dim col As Integer 'déclare la variable col (COLonne)
Dim cb1 As String 'déclare la variable cb1 (ComboBox1)
Dim cb3 As String 'déclare la variable cb3 (ComboBox3)
Dim ShtS As Worksheet 'déclare la variable ShtS
 
cb1 = ComboBox1.Value 'définit la variable cb1
Set ShtS = Sheets("Polyvalence") 'définit la variable ShtS
ccb1 = ShtS.Range("C1:AO1").Find(What:=cb1).Column 'définit la colonne Ccb1
'P = 0, 1 ou 2
cb3 = ComboBox3.Value 'définit la variable cb3
For n = 3 To ShtS.Range("A65536").End(xlUp).Row
 If ShtS.Range("A" & n) = cb3 Then cb3n = n
Next n
If ComboBox2.Value = "Conducteur" Then 'condition : si la valweur de la ComboBox2 est "Chef"
    P = 0 'définit la variable P
    col = ccb1 + P 'définit la colone col
    ShtS.Cells(CInt(cb3n), col) = Former.Label2.Caption 'place dans la cellule la caption du Label2
End If 'fin de la condition
Dim Wk As Workbook
Dim Ws As Worksheet
MyPath = ThisWorkbook.Path
Dim fso As Object, x As Boolean
        
    Set fso = CreateObject("Scripting.FileSystemObject") 'vérifie si un fichier porte le nom de la personne formée
    x = fso.FileExists(MyPath & "\" & cb3 & ".xlsx")
    If x = True Then 'si oui, on ouvre ce fichier
        
    Set Wk = Workbooks.Open(Filename:=ThisWorkbook.Path & "\" & cb3 & ".xlsx")
    
    Wk.Activate
        For Each Ws In ActiveWorkbook.Worksheets 'on vérifie si une feuille porte le nom de la machine sélectionnée
            If Ws.Name = cb1 Then 'si oui, on ajoute la sélection sur cette feuille
                
                             
                If ChkB11 = True Then
                
                Cells(Range("A1000:C1000").End(xlUp).Row, 1) = ThisWorkbook.Sheets("FicheB203").Range("T14:U18").Value         
                
                End If
                         
            Else 'si non, on créé une feuille avec le nom de la machine et on ajoute la sélection
                Sheets.Add
                ActiveSheet.Name = cb1
                
                If ChkB11 = True Then
                
'même opération
                                
                End If
            End If
        Exit For
        Next
        ActiveWorkbook.Save 'on sauvegarde le fichier
        
    Else 'si aucun fichier n'existe sous le nom de cette personne, on créé : un classeur,une feuille et on ajoute la sélection
        Workbooks.Add
        Sheets.Add
        ActiveSheet.Name = cb1
        Worksheets(cb1).Range("A1") = ThisWorkbook.Sheets("FicheB203").Range("T14:U18").Value
        ActiveWorkbook.SaveAs MyPath & "\" & cb3 & ".xlsx" 'on sauvegarde le fichier dans le dossier contenant Compétence Perso
    End If
    
ActiveWorkbook.Close 'on ferme le fichier
Unload Me 'on ferme la fenêtre et affiche l'USF Formations
Formations.Show
End Sub
	Merci d'avance pour vos réponses